--- main.c	2006/02/25 20:31:25	1.7
+++ main.c	2009/06/27 11:10:55	1.8
@@ -89,8 +89,14 @@
 /*----------------------------------------------------------------------------*/
 void VKMainProcess()
 {
+	int xfd = ConnectionNumber(display);
+
 	while( !vk_done ) {
-		usleep(1000);
+		struct timeval tv = {1, 0};
+		fd_set rfds;
+		FD_ZERO(&rfds);
+		FD_SET(xfd, &rfds);
+		select(xfd+1, &rfds, 0, 0, &tv);
 
 		if( vk_timeout && vk_flash_on )
 			VKHideFlash();
